package com.hzhc.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzhc.dto.MemberVo;
import com.hzhc.dto.UserDto;
import com.hzhc.entity.SysWxMenu;
import com.hzhc.entity.UserMember;
import com.hzhc.utils.ResultUtil;
import com.hzhc.vo.CarInfoVo;
import com.hzhc.vo.SsoUserVo;
import com.hzhc.vo.UserMemberVo;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;


/**
 * <p>
 * 用户会员表 服务类
 * </p>
 *
 * @author 功不唐捐
 * @since 2023-11-08
 */
public interface UserMemberService extends IService<UserMember> {

    List<UserMemberVo> getUserMemberList(Page<UserMemberVo> page, UserMemberVo vo);

    boolean updateUserMember(UserMemberVo vo);

    boolean userMemberDelete(UserMemberVo vo);

    boolean checkUserMemberByField(String field, String mobile, Integer id);
    boolean checkUserYZSMemberByField(String field, String mobile, Integer id,String fleetId);

    boolean saveUserMember(UserMemberVo vo);

    boolean resetPasswd(UserMember userMember);

    UserMember getUserMember(String loginname,String password,Integer flag);

    ResultUtil<T> changePasswordRet(UserMemberVo vo);

    List<SysWxMenu> getSyswxMenuTree(Long memberId, String s, String title);

    List<UserMemberVo> getCompanyUserList(UserMemberVo vo);

    List<UserMember> getDriverList();

    ResultUtil<T> checkIsBlack(UserMemberVo vo);

    List<UserMemberVo> getYzsDriverList(UserMemberVo vo);

    List<UserMemberVo> getDriverPageList(Page<UserMemberVo> page, UserMemberVo vo);

    ResultUtil<T> deleteDriver(UserMemberVo vo);

    void updateDriver(UserMemberVo vo);

    ResultUtil<T> importDriverList(HttpServletRequest request, List<UserMember> drivers);

    void exportDriverFile(HttpServletRequest request, HttpServletResponse response, String exportExcelPathCms);

    ResultUtil<List<UserMemberVo>> DriverUpload(UserDto user, MultipartFile file);

    boolean checkDriverByField(String field, String mobile, Integer id,String companyName);

    ResultUtil<T> importYZSDriverList(HttpServletRequest request, List<UserMember> drivers);

    ResultUtil<List<UserMemberVo>> yzsDriverUpload(UserDto user, MultipartFile file);

    List<UserMember> getDriver(String telephone);

    ResultUtil<T> updatePwd(UserMember userMember);

    UserMember getByDriverName(String driverName,String companyId);

    boolean unlockRet(UserMember userMember);

    MemberVo syncUsersAutoLogin(HttpServletRequest request, SsoUserVo ssoUserVo, Long roleId);
}
